package com.muyu.system.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;

import com.muyu.common.core.domain.BaseEntity;
import com.muyu.common.core.enums.PayMethod;
import com.muyu.common.core.enums.PayStatus;
import com.muyu.system.danmo.enums.RefundStatus;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 保证金订单
 * </p>
 *
 * @author 作者
 * @since 2025-05-22
 */
@Getter
@Setter
@TableName("security_deposit_order")
public class SecurityDepositOrder extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 保证金账户id
     */
    @TableField("account_id")
    private Long accountId;

    /**
     * 店铺id
     */
    @TableField("store_id")
    private Long storeId;

    /**
     * 订单号
     */
    @TableField("order_sn")
    private String orderSn;

    /**
     * 支付总额（分）
     */
    @TableField("pay_amount")
    private Integer payAmount;

    /**
     * 支付时间
     */
    @TableField("pay_time")
    private LocalDateTime payTime;

    /**
     * 支付订单号
     */
    @TableField("pay_order_no")
    private String payOrderNo;

    /**
     * 退款订单号
     */
    @TableField("refund_order_sn")
    private String refundOrderSn;

    /**
     * 支付退款订单号
     */
    @TableField("pay_refund_order_no")
    private String payRefundOrderNo;

    /**
     * 退款时间
     */
    @TableField("refund_time")
    private LocalDateTime refundTime;

    /**
     * 退款金额（分）
     */
    @TableField("refund_amount")
    private Integer refundAmount;

    /**
     * 支付的用户id
     */
    @TableField("user_id")
    private Long userId;


    /**
     * 支付方式
     */
    @TableField("pay_type")
    private PayMethod payType;


    /**
     * 支付状态
     */
    @TableField("pay_status")
    private PayStatus payStatus;



    /**
     * 退款状态
     */
    @TableField("refund_status")
    private PayStatus refundStatus;
}
